package org.jpro.annotation;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

import org.jpro.enums.DataSourceType;

/**
 * <P>功能描述 : 注解动态切换数据源 </P>
 * <P>File name : DataSource </P>
 * <P>Author : 王泽浩 </P>
 * <P>E-Mail : 1028625100@qq.com </P>
 * <P>Date : 2017/1/1 下午9:15</P>
 */
@Target({ ElementType.METHOD, ElementType.TYPE })
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface DataSource {

    /**
     * 是否强制使用，默认不强制使用，此配置的意义在于有时候读写数据库数据不同步时，可能需要使用其余的数据库类型读取数据，只需要在调用dao方法前
     * 调用DataSourceContextHolder即可
     * @return
     */
    boolean compulsoryse() default false;

    /**
     * 数据源类型，只读还是读写
     * @return
     */
    DataSourceType type() default DataSourceType.READ;
}
